//package com.geostar.library.utils;
//
//import com.google.gson.ExclusionStrategy;
//import com.google.gson.FieldAttributes;
//import com.google.gson.Gson;
//import com.google.gson.GsonBuilder;
//
//import java.lang.reflect.Field;
//
///**
// * 对象Gson化和Gson对象化辅助工具类
// *
// */
//public class GsonUtils {
//	private static Gson mGson;
//
//	/**获取默认的json解析器
//	 * @return
//	 */
//	public static Gson getGson(){
//		if(mGson==null){
//			GsonBuilder buler = new GsonBuilder();
//			buler.addDeserializationExclusionStrategy(new SuperclassExclusionStrategy());
//			buler.addSerializationExclusionStrategy(new SuperclassExclusionStrategy());
//			mGson=buler.create();
//		}
//		return mGson;
//	}
//
//
//	private static class  SuperclassExclusionStrategy implements ExclusionStrategy {
//
//		public boolean shouldSkipClass(Class<?> arg0)
//	    {
//			if(arg0==null){
//				return false;
//			}
//			//过滤掉默认包名
//			return arg0.getName().contains("com.geostar.core");
//	    }
//
//	    public boolean shouldSkipField(FieldAttributes fieldAttributes)
//	    {
////	        String fieldName = fieldAttributes.getName();
////	        Class<?> theClass = fieldAttributes.getDeclaringClass();
//	//
////	        return isFieldInSuperclass(theClass, fieldName);
//	    	return false;
//	    }
//
//	    private boolean isFieldInSuperclass(Class<?> subclass, String fieldName)
//	    {
//	        Class<?> superclass = subclass.getSuperclass();
//	        Field field;
//
//	        while(superclass != null)
//	        {
//	            field = getField(superclass, fieldName);
//
//	            if(field != null)
//	                return true;
//
//	            superclass = superclass.getSuperclass();
//	        }
//
//	        return false;
//	    }
//
//	    private Field getField(Class<?> theClass, String fieldName)
//	    {
//	        try
//	        {
//	            return theClass.getDeclaredField(fieldName);
//	        }
//	        catch(Exception e)
//	        {
//	            return null;
//	        }
//	    }
//
//	}
//
//
//}
